﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using GC2.Bussines;
using GC2.Bussines.BMAdmin;
using GC2.Entities.Admin;
using GC2.Entities.Seguridad;
using GC2.ExceptionHandler;

public partial class Informes_detalleIngresoAdmin : GenericPage
{
    #region Propiedades
    Usuarios usuario = new Usuarios();
    List<DetalleIngreso> listaDetalle = new List<DetalleIngreso>();
    #endregion

    #region Controles

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            SetearCultura();
            SetearConexion();
            if (!IsPostBack)
            {
                usuario = (Usuarios)Session["UsuarioActual"];
                lblAccion.Text = "Seleccione Período";

                DateTime dHoy = DateTime.Now.Date;
                FechaH.SetFecha(dHoy);
                string sFecha = SetearFecha();
                FechaD.SetFecha(Convert.ToDateTime(sFecha));
            }
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
    protected void gvIngresos_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvIngresos.PageIndex = e.NewPageIndex;
        CargarGrilla();
    }

    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/Seguridad/Default.aspx", false);
    }

    protected void btnBuscar_Click(object sender, EventArgs e)
    {
        try
        {
            BuscarIngresos();
            CargarGrilla();
            lblAccion.Text = "Seleccionar Detalle";
        }
        catch (Exception ex) { ErrorUI(ex); }
    }


    #endregion

    #region Métodos

    private void CargarGrilla()
    {
        try
        {
            listaDetalle = (List<DetalleIngreso>)Session["listaDetalle"];
            gvIngresos.DataSource = listaDetalle;
            gvIngresos.DataBind();
        }
        catch (Exception ex) { ErrorUI(ex); }
    }

    protected void BuscarIngresos()
    {
        try
        {
            listaDetalle = new List<DetalleIngreso>();
            BMDetalleIngreso bmDetalle = new BMDetalleIngreso(Connection);
            DetalleIngreso detalleD = new DetalleIngreso();
            DetalleIngreso detalleH = new DetalleIngreso();
            detalleD.Fecha = FechaD.GetFecha();
            detalleH.Fecha = FechaH.GetFecha();
            listaDetalle = bmDetalle.BMDetalleIngresoSearch(detalleD, detalleH);
            Session["listaDetalle"] = listaDetalle;
            if (listaDetalle.Count > 0)
            {
                CargarGrilla();
            }
            else
            {
                lblAccion.Text = "No hay Ingresos con Detalle en este período";
            }  
        }
        catch (Exception ex) { ErrorUI(ex); }
    }

    #endregion

    protected void gvIngresos_SelectedIndexChanged(object sender, EventArgs e)
    {
        try
        {
            DetalleIngreso detalle = new DetalleIngreso();
            detalle.Id_Ingreso = Convert.ToUInt32(gvIngresos.SelectedDataKey.Value);
            listaDetalle = new List<DetalleIngreso>();
            listaDetalle = (List<DetalleIngreso>)Session["listaDetalle"];
            foreach (DetalleIngreso item in listaDetalle)
            {
                if (item.Id_Ingreso == detalle.Id_Ingreso)
                {
                    detalle = item;
                    break;
                }
            }

            Session["Accion"] = 3;
            Session["DetalleIngreso"] = detalle;
            Response.Redirect("~/Admin/DetalleIngreso.aspx", false);
        }
        catch (Exception ex) { ErrorUI(ex); }
    }
}